#include <stdlib.h>
#include <stdio.h>
#include <structures_donnees.h>


void	affiche(type *element)
{
	printf("\nArc :\n\tVille (Sommet) de départ : %d\n\tVille (Sommet) d'arrivée : %d\n\tLongueur de l'arc : %lf\n\tQuantité de phéromones : %lf\n",(*element)->depart, (*element)->arrivee, (*element)->distance, (*element)->pheromones) ;
}


int		est_vide(Liste l)
{
	return (!l) ;
}
void	visualiser_liste(Liste l)
{
	while (!est_vide(l))
	{
		affiche(&(l->element)) ;
		l = l->next ;
	}
}
Liste	creer_liste(void)
{
	return (NULL) ;
}
Liste	ajout_tete(type *element , Liste l)/*fonctionne !*/
{
	Liste tete ;
	tete = calloc(1, sizeof(*tete)) ;
	tete->element = *element ;
	tete->next = l ;
	return (tete) ;
}
Liste	supprimer_tete(Liste l)/*fonctionne !*/
{
	if (est_vide(l))
	return (NULL) ;
	Liste	new ;
	new = l->next ;
	free (l) ;
	return (new) ;
}
Liste	ajout_queue(type *element, Liste l)
{
	printf("z");
	Liste queue ;
	printf("a");
	queue = calloc(1, sizeof(*queue)) ;
	queue->element = *element ;
	queue->next = l->next ;
	printf("b");
	if (queue->next == NULL)
	{
		l->next = queue ;
		printf("c");
	}
	else
	{	
		while (queue->next->next != NULL)
		{
			printf("d");
			queue->next = queue->next->next ;
		}
		printf("e");
		queue->next->next = queue ;
		printf("f");
		queue->next = NULL ;
	}
	return (l) ;
}
Liste	supprimen(int n, Liste l)
{
	if ( n == 0)
	supprimer_tete(l) ;
	else if (n > 0)
	{
		int i;
		Liste temp ;
		temp = l ;
		i = 0 ;
		while (i < n - 1)
		{
			if (temp->next == NULL)
			{
				return (NULL) ;
			}
			temp = temp->next ;
			i++ ;
		}
		temp->next = temp->next->next ;
		return (l) ;
	}
	else
	{
		return(NULL) ;
	}
	return(NULL) ;
}
